//
//  UIButton+block.m
//  Depressed.domo
//
//  Created by rimi on 16/5/30.
//  Copyright © 2016年 薛涛. All rights reserved.
//

#import "UIButton+block.h"
#import <objc/runtime.h>
typedef void (^CallBack)(UIButton * btn);
@implementation UIButton (block)
- (void)btnclickedEvet:(UIControlEvents)evnet UsingBlock:(void(^)(UIButton *))block{
    /**将block关联到self上，“block”代表keypath，最后参数代表属性列表*/
    if (block != nil) {
        /**设置一个相关值对于一个给定的对象使用一个给定的键和协会政策
         1、对象关联的源对象
         2、该协会的关键的关键
         3、价值与价值的关键的关键对象。通过零清除现有的协会
         4、政策协会的政策。可能的值,请参阅“关联对象的行为
       OBJC_ASSOCIATION_COPY_NONATOMIC = 指定相关的对象被复制。协会不自动*/
        objc_setAssociatedObject(self, "block", block, OBJC_ASSOCIATION_COPY_NONATOMIC);
        [self addTarget:self action:@selector(usingBlock:) forControlEvents:UIControlEventTouchUpInside];
    }

}
- (void)usingBlock:(UIButton *)sender{
    CallBack block = objc_getAssociatedObject(self, "block");
    if (block != nil) {
        block(self);
    }

}
@end
